FrameLib  2.0
DSP processing with frames of arbitrary timing and length
FrameLib_DSP Class Referenceabstract

an abstract class containing the core of the DSP processing system, which handles single-stream scheduling. More...

#include <FrameLib_DSP.h>

Inheritance diagram for FrameLib_DSP:
FrameLib_Block FrameLib_Queueable< FrameLib_DSP > FrameLib_Object< FrameLib_Block > FrameLib_Queueable< FrameLib_Block > FrameLib_AudioInput FrameLib_AudioOutput FrameLib_Processor FrameLib_Scheduler

Classes

struct  SchedulerInfo
 a struct for returning scheduling info from the schedule() method. More...
 

Public Member Functions

 FrameLib_DSP (ObjectType type, FrameLib_Context context, FrameLib_Proxy *proxy, FrameLib_Parameters::Info *info, unsigned long nIns, unsigned long nOuts, unsigned long nAudioChans=0)
 
 ~FrameLib_DSP ()
 
 FrameLib_DSP (const FrameLib_DSP &)=delete
 
FrameLib_DSPoperator= (const FrameLib_DSP &)=delete
 
void setFixedInput (unsigned long idx, double *input, unsigned long size) final
 
const double * getFixedInput (unsigned long idx, unsigned long *size) final
 
void blockUpdate (const double *const *ins, double **outs, unsigned long blockSize) final
 
void reset (double samplingRate, unsigned long maxBlockSize) final
 
const FrameLib_ParametersgetParameters () const final
 
FrameType inputType (unsigned long idx) const final
 
FrameType outputType (unsigned long idx) const final
 
void autoOrderingConnections () final
 
void clearAutoOrderingConnections () final
 
- Public Member Functions inherited from FrameLib_Block
 FrameLib_Block (ObjectType type, FrameLib_Context context, FrameLib_Proxy *proxy)
 
virtual ~FrameLib_Block ()
 
virtual void setStream (void *streamOwner, unsigned long stream)
 
- Public Member Functions inherited from FrameLib_Object< FrameLib_Block >
 FrameLib_Object (ObjectType type, FrameLib_Context context, FrameLib_Proxy *proxy)
 
virtual ~FrameLib_Object ()
 
ObjectType getType () const
 
FrameLib_Context getContext () const
 
FrameLib_ProxygetProxy () const
 
unsigned long getNumIns () const
 
unsigned long getNumOuts () const
 
unsigned long getNumAudioIns () const
 
unsigned long getNumAudioOuts () const
 
unsigned long getNumAudioChans () const
 
virtual std::string objectInfo (bool verbose=false)
 
virtual std::string inputInfo (unsigned long idx, bool verbose=false)
 
virtual std::string outputInfo (unsigned long idx, bool verbose=false)
 
virtual std::string audioInfo (unsigned long idx, bool verbose=false)
 
ConnectionResult addConnection (Connection connection, unsigned long inIdx)
 
void deleteConnection (unsigned long inIdx)
 
ConnectionResult addOrderingConnection (Connection connection)
 
void deleteOrderingConnection (Connection connection)
 
void clearOrderingConnections ()
 
void clearConnections ()
 
ConnectionResult setInputAlias (Connection alias, unsigned long inIdx)
 
ConnectionResult setOrderingAlias (FrameLib_Block *alias)
 
ConnectionResult setOutputAlias (Connection alias, unsigned long outIdx)
 
bool isConnected (unsigned long inIdx) const
 
Connection getConnection (unsigned long inIdx) const
 
bool supportsOrderingConnections () const
 
unsigned long getNumOrderingConnections () const
 
Connection getOrderingConnection (unsigned long idx) const
 
void callConnectionUpdate ()
 
void addOutputDependencies (std::vector< U * > &dependencies)
 
void addOutputDependencies (std::vector< U * > &dependencies, unsigned long outIdx)
 
- Public Member Functions inherited from FrameLib_Queueable< FrameLib_Block >
 FrameLib_Queueable ()
 
- Public Member Functions inherited from FrameLib_Queueable< FrameLib_DSP >
 FrameLib_Queueable ()
 

Protected Member Functions

void setIO (unsigned long nIns, unsigned long nOuts, unsigned long nAudioChans=0)
 
void setInputMode (unsigned long idx, bool update, bool trigger, bool switchable, FrameType type=kFrameNormal)
 
void setParameterInput (unsigned long idx)
 
void addParameterInput ()
 
void setOutputType (unsigned long idx, FrameType type)
 
void setCurrentOutputType (unsigned long idx, FrameType type)
 
void updateTrigger (unsigned long idx, bool trigger)
 
bool isTrigger (unsigned long idx) const
 
FrameLib_TimeFormat getFrameTime () const
 
FrameLib_TimeFormat getValidTime () const
 
FrameLib_TimeFormat getInputTime () const
 
FrameLib_TimeFormat getCurrentTime () const
 
FrameLib_TimeFormat getBlockStartTime () const
 
FrameLib_TimeFormat getBlockEndTime () const
 
FrameLib_TimeFormat getInputFrameTime (unsigned long idx) const
 
FrameLib_TimeFormat getInputValidTime (unsigned long idx) const
 
void requestOutputSize (unsigned long idx, size_t size)
 
void requestAddedOutputSize (unsigned long idx, size_t size)
 
bool allocateOutputs ()
 
FrameType getInputCurrentType (unsigned long idx) const
 
const double * getInput (unsigned long idx, size_t *size) const
 
const FrameLib_Parameters::SerialgetInput (unsigned long idx) const
 
FrameType getOutputCurrentType (unsigned long idx) const
 
double * getOutput (unsigned long idx, size_t *size) const
 
FrameLib_Parameters::SerialgetOutput (unsigned long idx) const
 
void prepareCopyInputToOutput (unsigned long inIdx, unsigned long outIdx)
 
void copyInputToOutput (unsigned long inIdx, unsigned long outIdx)
 
FrameLib_TimeFormat hzToSamples (const FrameLib_TimeFormat &a)
 
FrameLib_TimeFormat msToSamples (const FrameLib_TimeFormat &a)
 
FrameLib_TimeFormat secondsToSamples (const FrameLib_TimeFormat &a)
 
double hzToSamples (double a)
 
double msToSamples (double a)
 
double secondsToSamples (double a)
 
- Protected Member Functions inherited from FrameLib_Object< FrameLib_Block >
void addOutputDependencies (Queue *queue)
 
void addOutputDependencies (Queue *queue, unsigned long outIdx)
 
Connection getConnectionInternal (unsigned long inIdx) const
 
Connection getOrderingConnectionInternal (unsigned long idx) const
 
void setIO (unsigned long nIns, unsigned long nOuts, unsigned long nAudioChans=0)
 
void enableOrderingConnections ()
 
U * alloc (unsigned long N)
 
void dealloc (U *&ptr)
 
void clearAllocator ()
 
FrameLib_LocalAllocator::StorageregisterStorage (const char *name)
 
void releaseStorage (FrameLib_LocalAllocator::Storage *&storage)
 
const double * getEmptyFixedInput (unsigned long idx, unsigned long *size)
 

Static Protected Member Functions

static void copyVector (double *output, const double *input, unsigned long size)
 
static void zeroVector (double *output, unsigned long size)
 
static void copyVectorExtend (double *output, const double *input, unsigned long sizeOut, unsigned long sizeIn)
 
static void copyVectorWrap (double *output, const double *input, unsigned long sizeOut, unsigned long sizeIn)
 
static void copyVectorZero (double *output, const double *input, unsigned long sizeOut, unsigned long sizeIn)
 
- Static Protected Member Functions inherited from FrameLib_Object< FrameLib_Block >
static const char * formatInfo (const char *verboseStr, const char *briefStr, bool verbose)
 
static std::string formatInfo (const char *str, unsigned long idx)
 
static std::string formatInfo (const char *verboseStr, const char *briefStr, unsigned long idx, bool verbose)
 
static std::string formatInfo (const char *str, const char *replaceStr)
 
static std::string formatInfo (const char *verboseStr, const char *briefStr, const char *replaceStr, bool verbose)
 
static std::string parameterInputInfo (bool verbose)
 
static std::string numberedString (const char *str, unsigned long idx)
 
static bool addUniqueItem (std::vector< U > &list, U item)
 
static bool deleteUniqueItem (std::vector< U > &list, U item)
 

Protected Attributes

double mSamplingRate
 
unsigned long mMaxBlockSize
 
FrameLib_Parameters mParameters
 

Friends

class FrameLib_ProcessingQueue
 

Additional Inherited Members

- Public Types inherited from FrameLib_Object< FrameLib_Block >
using Queue = typename FrameLib_Queueable< FrameLib_Block >::Queue
 
- Static Public Member Functions inherited from FrameLib_Object< FrameLib_Block >
static bool handlesAudio ()
 

Detailed Description

an abstract class containing the core of the DSP processing system, which handles single-stream scheduling.

Constructor & Destructor Documentation

◆ FrameLib_DSP() [1/2]

FrameLib_DSP::FrameLib_DSP ( ObjectType  type,
FrameLib_Context  context,
FrameLib_Proxy proxy,
FrameLib_Parameters::Info info,
unsigned long  nIns,
unsigned long  nOuts,
unsigned long  nAudioChans = 0 
)

◆ ~FrameLib_DSP()

FrameLib_DSP::~FrameLib_DSP ( )

◆ FrameLib_DSP() [2/2]

FrameLib_DSP::FrameLib_DSP ( const FrameLib_DSP )
delete

Member Function Documentation

◆ addParameterInput()

void FrameLib_DSP::addParameterInput ( )
protected

◆ allocateOutputs()

bool FrameLib_DSP::allocateOutputs ( )
protected

◆ autoOrderingConnections()

void FrameLib_DSP::autoOrderingConnections ( )
finalvirtual

◆ blockUpdate()

void FrameLib_DSP::blockUpdate ( const double *const *  ins,
double **  outs,
unsigned long  blockSize 
)
finalvirtual

◆ clearAutoOrderingConnections()

void FrameLib_DSP::clearAutoOrderingConnections ( )
finalvirtual

◆ copyInputToOutput()

void FrameLib_DSP::copyInputToOutput ( unsigned long  inIdx,
unsigned long  outIdx 
)
protected

◆ copyVector()

static void FrameLib_DSP::copyVector ( double *  output,
const double *  input,
unsigned long  size 
)
inlinestaticprotected

◆ copyVectorExtend()

static void FrameLib_DSP::copyVectorExtend ( double *  output,
const double *  input,
unsigned long  sizeOut,
unsigned long  sizeIn 
)
inlinestaticprotected

◆ copyVectorWrap()

static void FrameLib_DSP::copyVectorWrap ( double *  output,
const double *  input,
unsigned long  sizeOut,
unsigned long  sizeIn 
)
inlinestaticprotected

◆ copyVectorZero()

static void FrameLib_DSP::copyVectorZero ( double *  output,
const double *  input,
unsigned long  sizeOut,
unsigned long  sizeIn 
)
inlinestaticprotected

◆ getBlockEndTime()

FrameLib_TimeFormat FrameLib_DSP::getBlockEndTime ( ) const
inlineprotected

◆ getBlockStartTime()

FrameLib_TimeFormat FrameLib_DSP::getBlockStartTime ( ) const
inlineprotected

◆ getCurrentTime()

FrameLib_TimeFormat FrameLib_DSP::getCurrentTime ( ) const
inlineprotected

◆ getFixedInput()

const double * FrameLib_DSP::getFixedInput ( unsigned long  idx,
unsigned long *  size 
)
finalvirtual

◆ getFrameTime()

FrameLib_TimeFormat FrameLib_DSP::getFrameTime ( ) const
inlineprotected

◆ getInput() [1/2]

const double * FrameLib_DSP::getInput ( unsigned long  idx,
size_t *  size 
) const
protected

◆ getInput() [2/2]

const FrameLib_Parameters::Serial * FrameLib_DSP::getInput ( unsigned long  idx) const
protected

◆ getInputCurrentType()

FrameType FrameLib_DSP::getInputCurrentType ( unsigned long  idx) const
inlineprotected

◆ getInputFrameTime()

FrameLib_TimeFormat FrameLib_DSP::getInputFrameTime ( unsigned long  idx) const
inlineprotected

◆ getInputTime()

FrameLib_TimeFormat FrameLib_DSP::getInputTime ( ) const
inlineprotected

◆ getInputValidTime()

FrameLib_TimeFormat FrameLib_DSP::getInputValidTime ( unsigned long  idx) const
inlineprotected

◆ getOutput() [1/2]

double * FrameLib_DSP::getOutput ( unsigned long  idx,
size_t *  size 
) const
protected

◆ getOutput() [2/2]

FrameLib_Parameters::Serial * FrameLib_DSP::getOutput ( unsigned long  idx) const
protected

◆ getOutputCurrentType()

FrameType FrameLib_DSP::getOutputCurrentType ( unsigned long  idx) const
inlineprotected

◆ getParameters()

const FrameLib_Parameters* FrameLib_DSP::getParameters ( ) const
inlinefinalvirtual

Reimplemented from FrameLib_Object< FrameLib_Block >.

◆ getValidTime()

FrameLib_TimeFormat FrameLib_DSP::getValidTime ( ) const
inlineprotected

◆ hzToSamples() [1/2]

FrameLib_TimeFormat FrameLib_DSP::hzToSamples ( const FrameLib_TimeFormat a)
inlineprotected

◆ hzToSamples() [2/2]

double FrameLib_DSP::hzToSamples ( double  a)
inlineprotected

◆ inputType()

FrameType FrameLib_DSP::inputType ( unsigned long  idx) const
inlinefinalvirtual

◆ isTrigger()

bool FrameLib_DSP::isTrigger ( unsigned long  idx) const
inlineprotected

◆ msToSamples() [1/2]

FrameLib_TimeFormat FrameLib_DSP::msToSamples ( const FrameLib_TimeFormat a)
inlineprotected

◆ msToSamples() [2/2]

double FrameLib_DSP::msToSamples ( double  a)
inlineprotected

◆ operator=()

FrameLib_DSP& FrameLib_DSP::operator= ( const FrameLib_DSP )
delete

◆ outputType()

FrameType FrameLib_DSP::outputType ( unsigned long  idx) const
inlinefinalvirtual

◆ prepareCopyInputToOutput()

void FrameLib_DSP::prepareCopyInputToOutput ( unsigned long  inIdx,
unsigned long  outIdx 
)
protected

◆ requestAddedOutputSize()

void FrameLib_DSP::requestAddedOutputSize ( unsigned long  idx,
size_t  size 
)
inlineprotected

◆ requestOutputSize()

void FrameLib_DSP::requestOutputSize ( unsigned long  idx,
size_t  size 
)
inlineprotected

◆ reset()

void FrameLib_DSP::reset ( double  samplingRate,
unsigned long  maxBlockSize 
)
finalvirtual

◆ secondsToSamples() [1/2]

FrameLib_TimeFormat FrameLib_DSP::secondsToSamples ( const FrameLib_TimeFormat a)
inlineprotected

◆ secondsToSamples() [2/2]

double FrameLib_DSP::secondsToSamples ( double  a)
inlineprotected

◆ setCurrentOutputType()

void FrameLib_DSP::setCurrentOutputType ( unsigned long  idx,
FrameType  type 
)
protected

◆ setFixedInput()

void FrameLib_DSP::setFixedInput ( unsigned long  idx,
double *  input,
unsigned long  size 
)
finalvirtual

◆ setInputMode()

void FrameLib_DSP::setInputMode ( unsigned long  idx,
bool  update,
bool  trigger,
bool  switchable,
FrameType  type = kFrameNormal 
)
protected

◆ setIO()

void FrameLib_DSP::setIO ( unsigned long  nIns,
unsigned long  nOuts,
unsigned long  nAudioChans = 0 
)
protected

◆ setOutputType()

void FrameLib_DSP::setOutputType ( unsigned long  idx,
FrameType  type 
)
protected

◆ setParameterInput()

void FrameLib_DSP::setParameterInput ( unsigned long  idx)
protected

◆ updateTrigger()

void FrameLib_DSP::updateTrigger ( unsigned long  idx,
bool  trigger 
)
protected

◆ zeroVector()

static void FrameLib_DSP::zeroVector ( double *  output,
unsigned long  size 
)
inlinestaticprotected

Friends And Related Function Documentation

◆ FrameLib_ProcessingQueue

friend class FrameLib_ProcessingQueue
friend

Member Data Documentation

◆ mMaxBlockSize

unsigned long FrameLib_DSP::mMaxBlockSize
protected

◆ mParameters

FrameLib_Parameters FrameLib_DSP::mParameters
protected

◆ mSamplingRate

double FrameLib_DSP::mSamplingRate
protected

The documentation for this class was generated from the following files: